﻿using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace DHQGHN.PM2.Models
{
    public class EnumeratorModel
    {
        public string ENUMERATOR_ID { get; set; }
        [Display(Name = "Parent Id")]
        public string PARENT_ID { get; set; }

        [Display(Name = "Mã địa bàn: ")]
        public string ADM_UNIT_ID { get; set; }

        [Display(Name = "Mã ĐTV:")]
        //[StringLength(3, ErrorMessage = "Mã nhân viên tối đa 3 ký tự")]
        public string ENUM_CODE { get; set; }

        [Display(Name = "Họ tên:")]
        [StringLength(50, ErrorMessage = "Độ dài tên nhiều nhất 50 ký tự")]
        [RegularExpression(@"[^<>?!.,:;~@#\$%\^\&\*\(\)\+=\[\]\{\}\d\'\""\\/\|_]+",
            ErrorMessage = "Họ tên chỉ bao gồm các chữ cái")]
        [Required(ErrorMessage = "Bạn chưa nhập họ tên")]
        public string FULL_NAME { get; set; }
        [Display(Name = "Chữ ký")]
        public string SIGNATURE { get; set; }

        //[AllowHtml]
        [Display(Name = "Mô tả:")]
        [StringLength(150, ErrorMessage = "Mô tả nhiều nhất 150 ký tự")]        
        public string DESCRIPTIONS { get; set; }

        [Display(Name = "Ngày bắt đầu:")]
        public int START_DATE { get; set; }

        [Display(Name = "Ngày kết thúc:")]
        public int END_DATE { get; set; }

        [Display(Name = "Ngày thay đổi")]
        public DateTime LAST_UPDATED { get; set; }

        [Display(Name = "Tên đăng nhập: ")]
        [StringLength(40, MinimumLength = 5,
            ErrorMessage = "Tên đăng nhập dài từ {2} đến {1} ký tự")]
        [Remote("CheckForDuplication", "Enumerator",
            ErrorMessage = "Tên này đã tồn tại. Vui lòng chọn tên khác",
            HttpMethod = "POST")]
        [Required(ErrorMessage = "Bạn chưa nhập tên đăng nhập")]
        [RegularExpression("^[a-zA-Z0-9_]+$", ErrorMessage = "Tên đăng nhập chỉ bao gồm chữ cái không dấu, số và dấu gạch dưới.")]
        public string USERNAME { get; set; }

        [Display(Name = "Nhóm: ")]
        [Required(ErrorMessage = "Bạn chưa chọn nhóm")]
        public string GROUPCODE { get; set; }

        public int DELETED { get; set; }
        public long ORDER { get; set; }
        public int RECORD_COUNT { get; set; }
        public string GROUP_CODE_OLD { get; set; }

        [Display(Name = "EMail: ")]
        [StringLength(100, ErrorMessage = "EMail nhiều nhất 100 ký tự")]
        //[RegularExpression(@"[^<>!#$%&*;:|\/?,]|(([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4}))+$", ErrorMessage = "Không hợp lệ hoăc không đúng định dạng")]
        [RegularExpression(@"^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$",ErrorMessage = "Email không đúng định dạng")]
        [Remote("CheckEmail", "Enumerator",ErrorMessage = "Email này đã tồn tại. Vui lòng nhập EMail khác",HttpMethod = "POST")]
        [Required(ErrorMessage = "Bạn chưa nhập Email")]
        public string EMAIL { get; set; }

        public EnumeratorModel()
        {
            START_DATE = 9991231;
            END_DATE = 99991231;
            LAST_UPDATED = DateTime.Now;
            ADM_CODE = String.Empty;
            ADM_NAME = String.Empty;
            AREA_NAME = String.Empty;            
        }

        //phunx1, 20150618: them hai truong thong tin chung cua user dang nhap
        [Required(ErrorMessage = "Yêu cầu chọn đơn vị hành chính")]
        public string ADM_CODE { get; set; }
        public string ADM_NAME { get; set; }
        public string AREA_NAME { get; set; }
        public string PROVINCE_NAME { get; set; }
        public string DISTRICT_NAME { get; set; }
        public string COMMUNE_NAME { get; set; }
    }
}